<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
<HEAD><TITLE>tell manual page - Tcl Built-In Commands</TITLE>
<link rel="stylesheet" href="../docs.css" type="text/css" media="all">
</HEAD>
<BODY><H2><a href="../contents.htm">Tcl8.6.11/Tk8.6.11 Documentation</a> <small>&gt;</small> <a href="contents.htm">Tcl Commands</a> <small>&gt;</small> tell</H2>
<H3><A HREF="../UserCmd/contents.htm">Tcl/Tk Applications</A> | <A HREF="../TclCmd/contents.htm">Tcl Commands</A> | <A HREF="../TkCmd/contents.htm">Tk Commands</A> | <A HREF="../ItclCmd/contents.htm">[incr Tcl] Package Commands</A> | <A HREF="../SqliteCmd/contents.htm">SQLite3 Package Commands</A> | <A HREF="../TdbcCmd/contents.htm">TDBC Package Commands</A> | <A HREF="../TdbcmysqlCmd/contents.htm">tdbc::mysql Package Commands</A> | <A HREF="../TdbcodbcCmd/contents.htm">tdbc::odbc Package Commands</A> | <A HREF="../TdbcpostgresCmd/contents.htm">tdbc::postgres Package Commands</A> | <A HREF="../TdbcsqliteCmd/contents.htm">tdbc::sqlite3 Package Commands</A> | <A HREF="../ThreadCmd/contents.htm">Thread Package Commands</A> | <A HREF="../TclLib/contents.htm">Tcl C API</A> | <A HREF="../TkLib/contents.htm">Tk C API</A> | <A HREF="../ItclLib/contents.htm">[incr Tcl] Package C API</A> | <A HREF="../TdbcLib/contents.htm">TDBC Package C API</A></H3>
<H3><A NAME="M2">NAME</A></H3>
tell &mdash; Return current access position for an open channel
<H3><A NAME="M3">SYNOPSIS</A></H3>
<B>tell </B><I>channelId</I><BR>
<H3><A NAME="M4">DESCRIPTION</A></H3>
Returns an integer string giving the current access position in
<I>channelId</I>.  This value returned is a byte offset that can be passed to
<B><A HREF="../TclCmd/seek.htm">seek</A></B> in order to set the channel to a particular position.  Note
that this value is in terms of bytes, not characters like <B><A HREF="../TclCmd/read.htm">read</A></B>.
The value returned is -1 for channels that do not support
seeking.
<P>
<I>ChannelId</I> must be an identifier for an open channel such as a
Tcl standard channel (<B><A HREF="../TclLib/GetStdChan.htm">stdin</A></B>, <B><A HREF="../TclLib/GetStdChan.htm">stdout</A></B>, or <B><A HREF="../TclLib/GetStdChan.htm">stderr</A></B>),
the return value from an invocation of <B><A HREF="../TclCmd/open.htm">open</A></B> or <B><A HREF="../TclCmd/socket.htm">socket</A></B>, or
the result of a channel creation command provided by a Tcl extension.
<H3><A NAME="M5">EXAMPLE</A></H3>
Read a line from a file channel only if it starts with <B>foobar</B>:
<P>
<PRE># Save the offset in case we need to undo the read...
set offset [<B>tell</B> $chan]
if {[read $chan 6] eq &quot;foobar&quot;} {
    gets $chan line
} else {
    set line {}
    # Undo the read...
    seek $chan $offset
}</PRE>
<H3><A NAME="M6">SEE ALSO</A></H3>
<B><A HREF="../TclCmd/file.htm">file</A></B>, <B><A HREF="../TclCmd/open.htm">open</A></B>, <B><A HREF="../TclCmd/close.htm">close</A></B>, <B><A HREF="../TclCmd/gets.htm">gets</A></B>, <B><A HREF="../TclCmd/seek.htm">seek</A></B>, <B><A HREF="../TclLib/StdChannels.htm">Tcl_StandardChannels</A></B>
<H3><A NAME="M7">KEYWORDS</A></H3>
<A href="../Keywords/A.htm#access position">access position</A>, <A href="../Keywords/C.htm#channel">channel</A>, <A href="../Keywords/S.htm#seeking">seeking</A>
<div class="copy">Copyright &copy; 1993 The Regents of the University of California.
<BR>Copyright &copy; 1994-1996 Sun Microsystems, Inc.
</div>
</BODY></HTML>
